Устаревание данных | Tdb
Руководство пользователя Устаревание данных

Устаревание данных

Модуль expirationd позволяет контролировать время жизни кортежей в спейсе и обрабатывать кортежи, время жизни которых истекло.

Модуль работает в фоновом режиме в рамках одного спейса:

  • обходит спейс по индексу с заданной периодичностью;

  • проверяет срок жизни кортежа с помощью функции is_expired;

  • применяет к кортежу функцию process_expired_tuple, заданную пользователем.

В Tarantool DB модуль доступен в виде технологической роли expirationd. Опции конфигурации expirationd описаны в соответствующей секции Справочника по конфигурации.

Важно

В Tarantool DB версии ниже 1.2.0 персистентные функции, необходимые для работы модуля, требуется объявлять перед применением конфигурации для роли expirationd. Это означает, что сначала нужно применить миграции с функциями, и только после этого можно включать роли. Иной порядок запуска приводит к возникновению ошибок.

В версии 1.2.0 эти ограничения исправлены: теперь порядок запуска не имеет значения. Если роль expirationd не включена, в веб-интерфейсе Tarantool DB появляется соответствующее сообщение.

Автоматическое удаление кортежей

Вы можете гибко настроить логику в модуле expirationd самостоятельно или включить автоматическое удаление устаревших кортежей. Автоматическое удаление запускается, если не указана пользовательская функция is_expired, которая определяет время жизни кортежа. Автоматически удаляются все кортежи старше указанного порогового значения. Пороговое значение можно задать в опции конфигурации options.args.lifetime_in_seconds. Название поля, по которому проверяется время жизни кортежа, можно задать в опции options.args.time_create_field.

Нашли ответ на свой вопрос?
Обратная связь